package org.hgvc.webapp.ets.spring.service;

import java.util.List;

import org.hgvc.webapp.ets.bo.RCIAssignment;
import org.hgvc.webapp.ets.bo.RCIAssignmentDetail;
import org.hgvc.webapp.ets.bo.RCIBooking;
import org.hgvc.webapp.ets.bo.RCIBookingEntry;
import org.hgvc.webapp.ets.bo.RCIBulkBank;
import org.hgvc.webapp.ets.bo.RCIIncomingMember;
import org.hgvc.webapp.ets.bo.RCIMember;
import org.hgvc.webapp.ets.bo.RCISplitWeekConfig;
import org.jocsb.base.bo.User;
import org.jocsb.base.exception.BaseException;


public interface AdminRCIService {
	public List<RCIBulkBank> getRCIBulkBankList()throws BaseException;
	public List<RCIBulkBank> getRCILBulkBankList(String searchField,String searchKeyword)throws BaseException;
	public List<RCIMember> getRCIMemberList()throws BaseException;
	public List<RCIAssignment> getRCIAssignmentList()throws BaseException;
	public List<RCIAssignmentDetail> getRCIAssignmentDetailList(RCIAssignment rciAssignment)throws BaseException;
	public void saveRCIBulkBank(RCIBulkBank rciBulkBank)throws BaseException;
	public void updateRCIBulkBank(RCIBulkBank rciBulkBank)throws BaseException;
	public void deleteRCIBulkBank(List<RCIBulkBank> deleteList)throws BaseException;
	
	public void saveRCIMember(RCIMember rciMember)throws BaseException;
	public void updateRCIMember(RCIMember rciMember)throws BaseException;
	public void deleteRCIMember(List<RCIMember> deleteList)throws BaseException;
	
	public RCIAssignment saveRCIAssignment(RCIAssignment rciAssignment)throws BaseException;
	public void saveRCIAssignmentDetail(RCIAssignment rciAssignment,RCIAssignmentDetail rciAssignmentDetail)throws BaseException;
	public void removeRCIAssignmentDetail(List<RCIAssignmentDetail> deleteList)throws BaseException;
	public void removeRCIAssignment(List<RCIAssignment> deleteList)throws BaseException;
	
	public List<RCIAssignment> getRCIAssignmentList(RCIBulkBank rciBulkBank)throws BaseException;
	public List<RCIBooking> getRCIBookingList(RCIBulkBank rciBulkBank)throws BaseException;
	
	public List<RCIIncomingMember> getRCIIncomingMemberList()throws BaseException;
	public void saveRCIIncomingMember(RCIIncomingMember rciIncomingMember)throws BaseException;
	public void updateRCIIncomingMember(RCIIncomingMember rciIncomingMember)throws BaseException;
	public void deleteRCIIncomingMember(List<RCIIncomingMember> deleteList,User logonUser)throws BaseException;
	
	public List<RCISplitWeekConfig> getRCISplitWeekConfigList()throws BaseException;
	public void saveRCISplitWeekConfig(RCISplitWeekConfig rciSplitWeekConfig)throws BaseException;
	public void updateRCISplitWeekConfig(RCISplitWeekConfig rciSplitWeekConfig)throws BaseException;
	public void deleteRCISplitWeekConfig(List<RCISplitWeekConfig> deleteList,User logonUser)throws BaseException;
	
	public List<RCIBookingEntry> getRCIBookingEntryList()throws BaseException;
	public void saveRCIBookingEntry(RCIBookingEntry rciBookingEntry)throws BaseException;
	public void updateRCIBookingEntry(RCIBookingEntry rciBookingEntry)throws BaseException;
	public void deleteRCIBookingEntry(List<RCIBookingEntry> deleteList,User logonUser)throws BaseException;
	public RCIBookingEntry getRCIBookingEntry(String id)throws BaseException;
	public void approveRCIBookingEntry(RCIBookingEntry rciBookingEntry,String actionNo,User logonUser)throws BaseException;
	public void rejectRCIBookingEntry(RCIBookingEntry rciBookingEntry,String actionNo,User logonUser)throws BaseException;
	
	public List<RCIBulkBank> getRCIBulkBankAvList()throws BaseException;
	public List<RCIBulkBank> getRCIBulkBankOutgoingList()throws BaseException;
	
	public RCIBulkBank getRCIBulkBank(String id)throws BaseException;
	
}
